{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 心脏病结果分类（决策树）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1.读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "diseaseResults = np.loadtxt('data/heart.csv', delimiter=',')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "diseasex = diseaseResults[:, 0:-1]\n",
    "diseasey = diseaseResults[:, -1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import cross_val_predict\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import precision_score\n",
    "from sklearn.metrics import recall_score\n",
    "from sklearn.metrics import f1_score\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.model_selection import train_test_split, cross_val_score\n",
    "from sklearn.feature_extraction.text import TfidfVectorizer\n",
    "from matplotlib.font_manager import FontProperties"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2.模型建立和性能评价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "决策树在heart disease测试集上的四项指标\n",
      "精度: 0.79\n",
      "查准率: 0.8\n",
      "查全率: 0.81\n",
      "f1值: 0.81\n"
     ]
    }
   ],
   "source": [
    "model = DecisionTreeClassifier(max_depth = 10) # 参数max_depth决定了决策树的最大深度\n",
    "# YOUR CODE HERE\n",
    "\n",
    "prediction = cross_val_predict(model,diseasex,diseasey,cv = 10)\n",
    " \n",
    "acc1 = round(accuracy_score(diseasey,prediction),2)\n",
    "precision1 = round(precision_score(diseasey,prediction),2)\n",
    "recall1 = round(recall_score(diseasey,prediction),2)\n",
    "f1 = round(f1_score(diseasey,prediction),2)\n",
    "\n",
    "print(\"决策树在heart disease测试集上的四项指标\")\n",
    "print(\"精度:\",acc1)\n",
    "print(\"查准率:\",precision1)\n",
    "print(\"查全率:\",recall1)\n",
    "print(\"f1值:\",f1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "决策树最大深度为10：  \n",
    "\n",
    "精度 | 查准率 | 查全率 | F1\n",
    "- | - | - | -\n",
    "0.79| 0.8 | 0.81 | 0.81"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "决策树在heart disease测试集上的四项指标\n",
      "精度: 0.81\n",
      "查准率: 0.81\n",
      "查全率: 0.85\n",
      "f1值: 0.83\n"
     ]
    }
   ],
   "source": [
    "model = DecisionTreeClassifier(max_depth = 3) # 参数max_depth决定了决策树的最大深度\n",
    "# YOUR CODE HERE\n",
    "\n",
    "prediction = cross_val_predict(model,diseasex,diseasey,cv = 10)\n",
    " \n",
    "acc1 = round(accuracy_score(diseasey,prediction),2)\n",
    "precision1 = round(precision_score(diseasey,prediction),2)\n",
    "recall1 = round(recall_score(diseasey,prediction),2)\n",
    "f1 = round(f1_score(diseasey,prediction),2)\n",
    "\n",
    "print(\"决策树在heart disease测试集上的四项指标\")\n",
    "print(\"精度:\",acc1)\n",
    "print(\"查准率:\",precision1)\n",
    "print(\"查全率:\",recall1)\n",
    "print(\"f1值:\",f1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "决策树最大深度为3：  \n",
    "\n",
    "精度 | 查准率 | 查全率 | F1\n",
    "- | - | - | -\n",
    "0.81 | 0.81 | 0.85 | 0.83"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3.决策树深度可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'accuracy_score')"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "# YOUR CODE HERE\n",
    "y = []\n",
    "\n",
    "for i in range(10):\n",
    "    model = DecisionTreeClassifier(max_depth = i + 1)\n",
    "    prediction = cross_val_predict(model,diseasex,diseasey,cv=10)\n",
    "    y.append(prediction)\n",
    "    \n",
    "x = np.linspace(1,10,10)\n",
    "test = [accuracy_score(diseasey, val) for val in y]\n",
    "\n",
    "plt.figure()\n",
    "plt.plot(x,test,'-')\n",
    "plt.title(\"DecisionTree's accuracy_score changes with the max_depth\")\n",
    "plt.xlabel(\"max_depth\")    \n",
    "plt.ylabel(\"accuracy_score\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**决策树深度为3时，有最大的精度**"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
